home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2002 December / INTERNET97.ISO / pc / software / windows / building / searchmaker / searchmakersetup.exe / {app} / SearchFunc.dat < prev    next >
Encoding:
Text File  |  2002-07-22  |  5.7 KB  |  1 lines

  1. document.write("<script LANGUAGE='JavaScript' src='webdata.js'></script>"); arrSearWord=new Array(); searWordNum=0; arrHitPages=new Array(); hitPageNum=0; function InsertSubStr(destStr,subStr,inspos) {   var tmpStr;   tmpStr = destStr.substring(0,inspos);   tmpStr += subStr;   tmpStr += destStr.substring(inspos,destStr.length);   return tmpStr;}function trim(s) {   var chStr;   while(s.length>0) {     chStr = s.charAt(0);     if(chStr==' ')        s = s.substring(1,s.length);     else        break;   }   return s;      }function MinNumPos(numArray,itemNum) {   var minPos=0;   var min=numArray[0];   for(var i=1; i<itemNum; i++)    if(numArray[i]<min)        {        min=numArray[i];         minPos=i;        }   return minPos;}function SplitSearWords() {var searWords; searWords=document.formSear.searWords.value;searWords=searWords.toLowerCase();searWords=trim(searWords);arrSearWord=searWords.split(" ");searWordNum=arrSearWord.length;}function SearchWords() {  hitPageNum=0;   for(var i=0; i<fileNum; i++)  {     var pageHitNum=0;       var pageHitTit="";      var pageHitTxt="";      if(arrFiles[i][1].length > 80)     pageHitTit=arrFiles[i][1].substring(0,80)+"...";     else    pageHitTit=arrFiles[i][1];     var lastOffsetTxt=-81;       for(var w=0; w<searWordNum; w++)     {    var wordPageHitNum=0;         var offsetTit;        var offsetTxt;    offsetTit=pageHitTit.indexOf(arrSearWord[w]);    offsetTxt=arrFiles[i][2].indexOf(arrSearWord[w]);        if(offsetTit==-1 && offsetTxt==-1)     {        pageHitNum=0;         break;    }    var  starpos=0;     while(offsetTit!=-1)       {        pageHitTit=InsertSubStr(pageHitTit,"</font>",offsetTit+arrSearWord[w].length);        pageHitTit=InsertSubStr(pageHitTit,"<font color="+HitTitleColor+">",offsetTit);                wordPageHitNum+=20;        starpos+=arrSearWord[w].length+26;        if(starpos>=pageHitTit.length)             break;                offsetTit=pageHitTit.indexOf(arrSearWord[w],starpos);     }    starpos=0;      while(offsetTxt!=-1 && pageHitTxt.length<130)     {            var dist = (lastOffsetTxt>=offsetTxt) ? lastOffsetTxt-offsetTxt : offsetTxt-lastOffsetTxt;        if(dist >= 80)         {            var preText,sufText;            if(offsetTxt < 80)                 preText=arrFiles[i][2].substring(0,offsetTxt);            else                preText="..."+arrFiles[i][2].substring(offsetTxt-80,offsetTxt);            if(offsetTxt+arrSearWord[w].length+80 > arrFiles[i][2].length)                sufText=arrFiles[i][2].substring(offsetTxt+arrSearWord[w].length,arrFiles[i][2].length);            else                sufText=arrFiles[i][2].substring(offsetTxt+arrSearWord[w].length,offsetTxt+arrSearWord[w].length+80)+"...";            pageHitTxt+=preText+arrSearWord[w]+sufText;            lastOffsetTxt=offsetTxt;         }        wordPageHitNum+=5;                    starpos+=arrSearWord[w].length;            if(starpos>=arrFiles[i][2].length)             break;                        offsetTxt=arrFiles[i][2].indexOf(arrSearWord[w],starpos);     }        pageHitNum += wordPageHitNum;      }     if(pageHitNum == 0)       continue;      for(w=0; w<searWordNum; w++)       {           var offsetTxt=0;       var starpos=0;        while(offsetTxt!=-1)       {        offsetTxt=pageHitTxt.indexOf(arrSearWord[w],starpos);        if(offsetTxt!=-1)         {            pageHitTxt=InsertSubStr(pageHitTxt,"</font>",offsetTxt+arrSearWord[w].length);            pageHitTxt=InsertSubStr(pageHitTxt,"<font color="+HitTextColor+">",offsetTxt);            starpos+=arrSearWord[w].length+26;            if(starpos>=pageHitTxt.length)                 break;        }        }            }    arrHitPages[hitPageNum]=new Array(i,pageHitNum,pageHitTit,pageHitTxt);     hitPageNum++;   }}function SortResult() {   var minpos;      var arrHitNum = new Array();      var itemNum = hitPageNum;     for(var i=0; i<itemNum; i++)     arrHitNum[i] = arrHitPages[i][1];   while(itemNum > 0)   {       minpos = MinNumPos(arrHitNum,itemNum);     var tmp = arrHitNum[minpos];     arrHitNum[minpos] = arrHitNum[itemNum-1];    arrHitNum[itemNum-1] = tmp;           for(var k=0; k<4; k++)        {       var temp = arrHitPages[minpos][k];       arrHitPages[minpos][k] = arrHitPages[itemNum-1][k];        arrHitPages[itemNum-1][k] = temp;      }        itemNum--;     }    }function OutPut() {   var strOutput;    strOutput="Your search: <b>";    for(var i=0; i<searWordNum; i++)      strOutput+=arrSearWord[i]+" ";   strOutput+="</b>  ";   if(NoNewSearchLink==0)    {       if(OutPutWindowType==0)               strOutput+="<a href='javascript:history.go(-1)'><b>New Search</b></a>";       if(OutPutWindowType==1)               strOutput+="<a href='javascript:self.close();'><b>Close Window</b></a>";   }   strOutput+="<hr>";   for(var i=0; i<hitPageNum; i++)   {    var index=arrHitPages[i][0];    if(OutPutResultTitle==1)        strOutput+="<big><a href='"+arrFiles[index][0]+"'>"+"<font"+" size="+ResultTitleSize+" color="+ResultTitleColor+" face="+ResultTitleFace+">"+arrHitPages[i][2]+"</font></a></big><br>";    if(OutPutResultText==1)        strOutput+="<font"+" size="+ResultTextSize+" color="+ResultTextColor+" face="+ResultTextFace+">"+arrHitPages[i][3]+"</font><br>";    if(OutPutResultUrl==1)        strOutput+="<font"+" size="+ResultUrlSize+" color="+ResultUrlColor+" face="+ResultUrlFace+">"+arrFiles[index][0]+"</font><br><br>";   }   strOutput+="<hr>";   strOutput+="Find "+hitPageNum+" pages.  ";    if(NoPoweredBy==0)        strOutput+="<small>Powered by <a href='http://www.aleadsoft.com'>ALeadSoft.com</a> 2002</small>";   strOutput = PreSearResultHTML+"<br>"+strOutput+"<br>"+StepSearResultHTML;   if(OutPutWindowType==0)    {        document.close();    document.open();       document.write(strOutput);    return;   }   if(OutPutWindowType==1)    {       var newWin = open("","Object", "resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=no,directories=no,width=590,height=300");       newWin.document.close();       newWin.document.open();       newWin.document.write(strOutput);    return;   }   if(OutPutWindowType==2)    {       parent.resultFrm.document.close();       parent.resultFrm.document.open();       parent.resultFrm.document.write(strOutput);    return;   }}function RunSearch() {   SplitSearWords();   SearchWords();   SortResult();   OutPut();}